package model;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import domein.Opmerking;

public class OpmerkingIO extends DbAbstract {

	public OpmerkingIO() {
		super();
	}

	/*
	 * 
	 * Lijst opmerkingen ophalen
	 * 
	 * @author rubenhartong
	 */

	public ArrayList<Opmerking> listOpmerkingen(String email, String eventID) {
		ArrayList<Opmerking> oList = new ArrayList<Opmerking>();
		try {
			super.makeConnection();
			ResultSet rs = super.makeResultSet("SELECT DISTINCT opmerkingID, opmerkingen.email, gebruikerID, opmerkingen.eventID, datum, opmerking, opmerkingen.status FROM opmerkingen JOIN bezoek ON opmerkingen.email = bezoek.email WHERE bezoek.email = '"+email+"' AND opmerkingen.eventID ='"+eventID+"' ORDER BY opmerkingen.datum DESC");
			while (rs.next()) {
				
				Opmerking g = new Opmerking("","", "", "", "", ""); 
				g.setEmail(rs.getString("email"));
				g.setGebruikerID(rs.getString("gebruikerID"));
				g.setEventID(rs.getString("eventID"));
				g.setDatum(rs.getString("datum"));
				g.setOpmerking(rs.getString("opmerking"));
				g.setStatus(rs.getString("status"));				
				
				oList.add(g);
				System.out.print(rs.getString("email") + " "+ rs.getString("gebruikerID") + " "+ rs.getString("eventID") + " "+ rs.getString("datum"));
			}
		} catch (SQLException ex) {
			System.out.println("Lijst opmerkingen ophalen gefaald." + ex);
			
		}
		super.closeConnectRst();
		return oList;
	}
	
	/*
	 * datum string verkrijgen
	 * 
	 * @author rubenhartong 
	 * 
	 */
	
	public String getDate(){
		
		DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date date = new Date();
		String s = dateFormat.format(date);
		
		return s;
	}
	
	/*
	 * Invoegen van een opmerking
	 * 
	 *  @author rubenhartong
	 */
	
	public void insertOpmerking(String email, String datum, String opmerking, String gebruikerID, String eventID, String status1){
		int status = Integer.parseInt(status1);
		String query = "INSERT INTO opmerkingen (email, datum, opmerking, gebruikerID, eventID, status)";
		query += "VALUES('" + email + "','" + datum + "', '" + opmerking + "', '" + gebruikerID
				+ "', '" + eventID + "', " + status + ")";
 
		try {
			super.addUpdateRecord(query);
			super.closeConnectRst();

		} catch (Exception e) {
			System.out.println(e);
		}
	}
	
	/*
	 * het wijzigen van de status van een bezoeker
	 * 
	 * @author rubenhartong 
	 * 
	 */
	
	public void wijzigStatus (String status1, String email, String eventID1){
		int eventID = Integer.parseInt(eventID1);
		int status = Integer.parseInt(status1);
		String query = "UPDATE bezoek SET status="+status+" WHERE eventID="+eventID+" AND email='"+email+"'";
		

		try {
			super.makeConnection();
			super.addUpdateRecord(query);
			super.closeConnectRst();

		} catch (Exception e) {
			System.out.println(e);
		}
	}
	
}
